<?php

namespace app\common\controller;

use think\Controller;
class Home extends Controller{
 /**
     * 无需登录的方法,同时也就不需要鉴权了
     * @var array
     */
    protected $noNeedLogin = [];
     // 全局共享登录信息
     protected $LoginUser = [];
     protected $BusinessModel,$RegionModel,$SubjectModel,$RecordModel,$ChapterModel,$OrderModel,$CommentModel;
     /**
     * 初始化操作
     * @access protected
     */
    protected function _initialize()
    {
        // 引入模型
        // 用户模型
        $this->BusinessModel = model('Business.Business');
        // 城市模型
        $this->RegionModel = model('Region.Region');
        // 课程模型
        $this->SubjectModel = model('Subject.Subject');
        // 消费记录模型
        $this->RecordModel = model('Business.Record');
        // 章节模型
        $this->ChapterModel = model('Subject.Chapter');
        // 订单模型
        $this->OrderModel = model('Subject.Order');
        // 评价模型
        $this->CommentModel = model('Subject.Comment');
         // 获取当前访问方法名(操作名)
         $action = $this->request->action();
         if(!in_array($action,$this->noNeedLogin)&&!in_array('*',$this->noNeedLogin)){
            $this->isLogin();
         }

        
    }
    function isLogin(){
        // 获取用户存储的信息
        $LoginUser = session('LoginUser') ?? [];
       
        // 为空就跳转登录页面
        if (empty($LoginUser)) {
            $this->error('未登陆,请先去登陆', 'home/index/login');
        }

        //查询这个用户是否存在
        $info = $this->BusinessModel->where(['mobile' => $LoginUser['mobile'], 'id' => $LoginUser['id']])->find();

        if (!$info) {
            // 清除
            session('LoginUser', null);
            $this->error('非法登陆', 'home/index/login');
        }


        $data = [
            'id' => $info['id'],
            'mobile' => $info['mobile'],
            'nickname' => $info['nickname'],
            'avatar' => $info['avatar_text'],
            'gender' => $info['gender'],
            'province' => $info['province'],
            'city' => $info['city'],
            'district' => $info['district'],
            'createtime' => $info['createtime'],
            'money' => $info['money'],
            'email' => $info['email'],
            'auth'=>$info['auth']
        ];
// var_dump($data);
// exit;
        // 重新存储用户信息
        session('LoginUser', $data);

        // 只有继承到Home公共控制器，控制器才有这个属性
        $this->LoginUser  = $info;
        
        // 只有继承到Home公共控制器，模板变量才有这个变量
        $this->assign(['LoginUser' => $data]);
    }
}